ESC101: Fundamentals of Computing (Jan-Apr 2019)

Syllabus

Stored program concept (with simple computer simulator), machine language and instruction formats, assembly language for the simple computer.Integer representation, finite representation of real numbers, overflow, underflow, errors due to finite representations. Expressions, values and variables, types, lvalue, rvalue, unary, binary, ternary operations. Conditionals, if-then, if-then-else, nested conditionals, switch-case. Loops, for, while, repeat, loop invariants, precondition, postcondition. Functions and return values, arguments, pass by value, the effect of passing pointers (like pass by reference). Recursion. Arrays, enums, searching, sorting. Pointers, lists, dynamic data structures, stack, queue, graphs, trees related algorithms, memory and its management. Elementary complexity motivation, concrete complexity, big O notation. Linux tools, introduction to shell programming. Elementary numerical problem solving will be addressed largely through some labs e.g. root finding, solutions of systems of linear equations, integration, solution of ODEs.

Announcements

  • Lab questions for the week will be released after Thu of that week as practice problems. The solutions are also posted by Fri.
  • Some practice problems are shared on prutor for the next week.
  • Why is the output of my program xyz?” or “I don’t understand how the compiler gave this output/error!” — the best place to ask all such questions is Piazza. While asking the question, include as much detail as you can. Read this page for an idea about what programmers need to debug your problem/code.
  • Sign up for First Timers Need Attention (FTNA) session 1. Refer to lecture 10 slides for details.
  • Seating arrangement — the same sheet will be updated with all exam related seating plan. I’ll post a message on Piazza once the seating arrangement is finalized before the exam.
  • Lab exam score normalization: please see this piazza post.

Teaching Staff

Main instructor: Swaprava Nath (swaprava@cse.iitk.ac.in) — office hours: by appointment, mail with [ESC101] in your subject line.
Faculty tutor: Piyush Rai
Admin TA(s): Garima Shakya (garima@cse.iitk.ac.in)
[it is highly recommended that you post your query either on Piazza or during your tutorial sessions before emailing the TAs, Tutors, or the Instructor]

Tutors

NameEmailSectionTutorial roomLab day for this section
Abhibhav Gargabhibhav@cse.iitk.ac.inA1T206Tuesday
Anant Narayan Vatsanantnv@iitk.ac.inA2T205Tuesday
Amrit Singhalamrits@cse.iitk.ac.inA3T204Tuesday
Gurpreet Singhguggu@iitk.ac.inA4T203Monday
Siddharth Agrawalsidarth@iitk.ac.inA5T112Monday
Shubham Kumar Bhartiskbharti@cse.iitk.ac.inA6T111Monday
Akshat Jindalakshatj@iitk.ac.inA7T110Wednesday
Anmol Porwalanmolp@iitk.ac.inA8T109Wednesday
Shubhojyoti Nathshubhoj@iitk.ac.inA9T108Wednesday
Pratham Kumar Vermaprathamv@iitk.ac.inA10T107Thursday
Prann Bansalprann@iitk.ac.inA11T106Thursday
Madhukantmkant@iitk.ac.inA12T105Thursday
Deepanshu Bansaldbansal@iitk.ac.inA13T104Monday
Ankit Jalanankitj@cse.iitk.ac.inA14T103Thursday
Paramkusam Niranjanniranjan@cse.iitk.ac.inPiazza tutorsPiazza
Anupriyanupriy@iitk.ac.inPiazza tutorsPiazza

The lab schedule is available from the DoAA site.

Important Links / Information

  • Course webpage: (this) [link]
  • Discussion Forum: Piazza [link]
  • Grading Website: Gradescope [link]
  • Lab Website: Prutor [link]

Times and Venues

  • Lectures: Mondays, Tuesdays, Wednesdays, 1200-1300 hrs at L20
  • Tutorials: Fridays, 1200-1300 hrs at the Tutorial Block
  • Labs: Mondays, Tuesdays, Wednesdays, Thursdays, 1400-1700 hrs at NCL CC-01, CC-02

Course Schedule

Due to institute holidays, we will have makeup lectures and labs. The tentative schedule is as follows. We may need to update it from time to time.

Additional materials, e.g., codes during the lecture, lab solutions are available here.

Course Events’ Calendar

Course Policies

Evaluation

The assessment of students taking this course shall be performed on the basis of performance in various components of the course. Note that week 1 will only have a introductory lab and a mock minor quiz which will not be graded.

  • 2%: Assignment 0 (setting up yourself for the course)
  • 10%: Lab assignments (11 labs, best 9 scores counted)
  • 8%: Minor quizzes (11 minor quizzes, best 9 scores counted)
  • 10%: Major quizzes (2 major quizzes of 5% each)
  • 15%: Mid-sem Lab Exam (check the schedule and calendar above)
  • 15%: End-sem Lab Exam (check the schedule and calendar above)
  • 15%: Mid-sem Theory Exam (scheduled by DoAA)
  • 25%: End-sem Theory Exam (scheduled by DoAA)

Practice Problems: practice problems will be released each week to help students prepare for the next week’s lab problems. You can solve these from your hostel etc. These problems will not be graded.

Bonus Problems: during some weeks, one or two bonus problems will be released to challenge students to explore more concepts and try solving tougher problems.

  • These problems will be auto-graded and submissions will be checked for copying and cheating.
  • Cases of cheating will be dealt with as described below.
  • The weightage of these problems will be above and beyond the normal course evaluation.
  • This means that hypothetically a student may end up scoring more than 100% marks due to excellent performance in usual components of the course – labs/quiz/exams/project as well as excellent work in bonus problems.

Regrading requests

The regrading procedures in Prutor or Gradescope are intended to correct serious errors in grading. It is not intended as an opportunity to argue about each judgment call made by the graders. Lab sessions are autograded using a computer, so there is little chance of a serious error. If your program failed some test cases during the lab session then for that test case you will have a score of zero — and there is nothing that can be done about it even if the error was small in your program. The lab exams and all other theory exams, quizzes are manually graded. We will only consider a regrading request if there is a significant error in grading, and if you sincerely feel that your exam was unfairly graded, we will look it over carefully. Having said that, if there is an attempt to use this feature to raise an unnecessary regrading request, then based on the severity of the attempt, a penalty will be placed which can go as high as deducting 50% of the marks for that question (irrespective of what marks you got in that question). We are not trying to scare off students whose exams were graded incorrectly, but we are trying to avoid frivolous requests.

What Merits a Regrade: The following are the usual circumstances that may lead to an increase in points:

  • Your answer is really the same as the one on the answer key, but the grader didn’t realize it.
  • Your answer is different from the one provided on the answer key, but your answer is also correct.

What Doesn’t Merit a Regrade: The following are not valid reasons for regrades:

  • Most of what I wrote is correct, so I think I deserve more partial credit.”  
  • Partial credit is given equally for all students who write a particular answer, so it would not be fair to give you more points for this without adding points to all students who wrote the same answer. 
  • “I wrote so much, and the grader didn’t notice that the correct answer is buried somewhere within this long paragraph.”  
  • You will lose points if the correct answer is accompanied by incorrect information or by so much irrelevant information that it gives the impression that you were just writing down everything you could think of on this topic. To get full credit you must demonstrate the ability to pull out the relevant info and to exclude irrelevant info. 
  • “My program had one semicolon missing”/”I forgot to submit the code through prutor”
  • As mentioned earlier, if a testcase fails on your program, for that testcase the award will be zero. If you fail to submit your code, the score for that question will be zero – no exceptions.
  • “I’m just 1 point away from an A, so I thought it was worth scrounging around to find an extra point somewhere.”
  • Lobbying for grades is considered inappropriate by the institute rules, so your case may be reported to appropriate authorities.

Miscellaneous

  • All quizzes/exams will be open handwritten notes. This means you can bring a notebook containing notes that you have written yourself. No printed/photocopied material or electronic material will be allowed in quizzes/exams. Disciplinary action will be taken if this rule is violated, i.e., if a student is found in possession of unauthorized material in an exam hall.
  • During lab hours, only students sitting inside NCL labs will be able to access Prutor. This is to ensure that no one can attempt labs sitting at home. However, outside of lab hours, Prutor is available at CC/NCL/Halls etc.

Drop Policy (Course)

Students (whether project track or regular track) who choose to drop the course altogether must get their applications approved by the instructor by April 5, 2019, after giving a proper reason for the said drop.

  • Course drop applications must be filled out on the standard SUGC course-drop form.
  • April 5, 2019, is a senate-mandated deadline. There is no option for processing drop requests after this deadline.
  • The instructor cannot ensure the approval of a course drop application by DUGC convenors or the SUGC.
  • In the past, students who have not put in serious and demonstrable effort in a course have often had their drop applications rejected.

Absentee and Make-up Policy

Students are expected to attend all lectures, labs, and tutorials, even though there is no required attendance for completing the course or marks for attendance. Project track students are expected to attend all lectures and tutorials, though the same attendance policy applies to them as well.

  • There will be no make-up lab or minor quizzes. We are already counting the 9 best labs and 9 best minor quizzes out of a total of 11.
  • There will be no make-up major quizzes, mid-sem lab, or theory exam, or end-sem lab exam.

For students with medical reasons for absence on day of exam, only upon producing medical certificates and an approval of leave from SUGC, the following will be permitted

  • Make up end-sem theory exam, on a date as scheduled by DoAA. Please note that in order to be eligible for this, an application must be approved by the instructor and the SUGC. The DoAA usually announces these details towards the end of the semester.
  • Prorating of major quiz 1 using mid sem theory exam
  • Prorating of major quiz 2 using end sem theory exam
  • Prorating of mid sem lab exam using end-sem lab exam marks
  • Prorating of mid sem theory exam using end-sem theory exam marks
  • Prorating of end sem lab exam using end-sem theory exam marks
  • There will be no cascaded prorating e.g. a student missing both major quiz 1 and mid sem theory exam will only have mid sem theory exam prorated using the (make-up) end sem exam and continue to get a zero for major quiz 1.

Use of Unfair Means

The use of unfair means by any student would be severely punished, by means of grade deductions, F grade award, referral to institute disciplinary committees and more. The following document would be referred to while deciding the penalty imposed.

Department Anti-Cheating Policy [link]

  • Use of all electronic devices such as laptops, mobile phones, tablets, smart watches, wireless headsets is strictly prohibited during quizzes/exams and will count as cheating. Scientific calculators may be allowed on a case-by-case basis (will be informed before the exam).
  • Copying code from the Internet during labs/quizzes/exams is not allowed.
  • Copying code from other students during labs is strictly forbidden and will be considered cheating.
  • Students allowing their work to be copied during labs/quizzes/exams will be penalized equally as those students who were copying from them.
  • Any form of harassment, intimidation, unfair lobbying, and activities with malicious intent in general, will be strictly dealt with.
  • The institute has a no-tolerance policy towards ragging and sexual harassment.
  • Students involved in the use of unfair means will be disallowed from dropping the course.

Some helpful tips: Students should keep in mind the following points to save themselves and their friends from penalties.

  • Read-protect your directories so that others cannot copy from your directory.
  • Please logout/lock your computer after you are done with the lab. Please do not leave after just closing the browser since this allows others to intrude into your account.
  • Do not share your CC password with anybody – whether it be your friends or wingmates. You will be held responsible for activities conducted using your accounts.
  • Do not leave printouts, notes etc. containing your code unattended.
  • Do not write your name or your roll number in your lab assignment/exam submissions.
  • Do not hard code inputs in your program.

References

The following books may be useful as supplementary readings for this course.

  • Schaum’s Outline of Programming with C, by Byron Gottfried, McGraw-Hill India
  • Programming in ANSI C, by Balaguruswamy
  • The C Programming Language, by Kernighan and Ritchie, Prentice-Hall India
  • Let Us C, by Kanetkar

Virtual Classroom

We will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from your classmates, the tutors, TAs, and the instructor. Rather than emailing questions to the teaching staff, we encourage you to post your questions on Piazza.

Class link

Other Instruction Language Resource

Here is a set of recorded videos in Hindi. You should use these resources only at the time of extreme difficulty after all other current resources of the course have been exercised. You must always try to follow the lectures of the current offering of the course, ask the tutors, TAs about your doubts, and post your question on Piazza.